home *** CD-ROM | disk | FTP | other *** search
- Emacs 18.55
- -rw-rw-r-- 1 gray 1416303 Sep 25 15:15 ++jrb_emacs_src.zoo
- -rw-rw-r-- 1 gray 142836 Jul 14 1990 temacs.lzh
- -rw-rw-r-- 1 gray 249642 Jul 14 1990 xemacs.lzh
-
-
- ********
- ./lisp/README
- ********
- if you are going to use Gulam as your callout shell, use gshell.el
- instead of shell.el
-
-
- ********
- ./README
- ********
- Emacs 18.55 tos version
- to re-compile:
-
- make library:
- in lib/ adjust VPATH to point to the gcc-lib-sources
- then hit make. this will pick up files it does'nt find
- from that library. Make sure to also adjust the include
- paths "-I<dirs>" correctly, so that files in h/ are
- found before files in the gcc-tos-lib-include directory.
- (in lib i have provided gnu.olb and crt0.o, so you can
- avoid this step and just use those).
-
- make emacs:
- adjust paths in xmakefile so that include files are first
- found in h/ and then the gcc-lib-include-files. also
- the library you created above should be linked, and not
- the standard tos-gcc-libs. hit make -f xmakefile
- and it will create `temacs'.
- READ the file read_me before proceeding. set up your environment.
-
- test:
- test out temacs by
- temacs -l loadup.el
-
- dumping:
- see the file lisp/dumping.txt
- if you are using gulam:
- temacs -batch -l loadup.el -dump
- mv xemacs xemacs.1
- then start a subshell by executing another copy of gulam
- within gulam.
- before you make the second dump issue
- unsetenv ARGV
- temacs -batch -l loadup.el -dump
- mv xeacs xemacs.2
- now exit the sub-shell (logout will do it)
- dumpfix xemacs.2 xemacs.1 xemacs
- > answer any questions here
- this will result in the undumped emacs called xemacs
-
- i usually use the following alias to run it:
- alias emacs 'g:\usr\lib\gnuemacs\bin\xemacs -q -l /dev/G/emacs.rc'
-
- as for some strange reason it does'nt find the init file even if
-
- setenv HOME /dev/G
- (oh, and i usually keep emacs.rc byte-compiled, so it load faster).
-
- if you are using gulam as a shell for (M-x shell), then use gshell.el
- instead of shell.el in the lisp directory (you may want to fixup your
- loadup.el to make this adjustment)
-
- enjoy,
- --
- bang: {any internet host}!dsrgsun.ces.CWRU.edu!bammi jwahar r. bammi
- domain: bammi@dsrgsun.ces.CWRU.edu
- GEnie: J.Bammi
- --
-
- dumping guidelines:
-
- Some notes on dumpfix:
- First some theory. When i core dump two emacs versions started at different
- points in memory, they should be identical in all places except the absolute
- pointers. These pointers should have the same difference for any corresponding
- locations (the difference of the two basepage addresses). To relocate these
- pointers i need the addresses of the basepages. In an emacs dump file i include
- these addresses in an unused field of the file header. Now i can scan the two
- files to find all longs with difference = basediff (= basepage1 - basepage2).
- To relocate them i subtract the basepage address of the file, write the value
- back and note the byte for the reloc info.
- Other differences than the basediff can occur when we have eg. time-values
- at the actual position or if we are looking at the long two bytes before a
- value to be relocated. Here is a picture to illustrate this:
-
- +--+--+ +--+--+ +--+--+ +--+--+
- | a | | b | | c | | d |
- +--+--+ +--+--+ +--+--+ +--+--+
-
- If the variable to relocate is the long consisting of word b & c, the difference
- of longs a & b and c & d in the two files will have a wrong value.
- Now practical: the occuring differences in emacs have not only the exact value
- basediff, but also basediff +- some offset (maybe caused by rounding effects).
- Also there are values which i can't (yet) explain. In all these cases the
- dumpfix program says "unexpected difference ...".
- If i relocate only the places where the difference has exactly the value
- basediff, then emacs will crash. So i introduced the FUZZY-factor. If the
- offset is not more than FUZZY bytes, i am relocating the location too. This
- gives fewer problems, but we still have unexpected values.
- What i am doing now is to look wether these values may be pointers to be
- relocated. They have to meet several constraints:
- - the value must be even
- - the tag byte (the highest byte of the long is used as a flag in
- emacs) has to be between 0 and 21 (the biggest flag used by emacs)
- - the value resulting from stripping the tag-byte should point into
- the programs text or data or bss (including malloced part) section
- If i have these three cases together then the user is asked (it may still be
- an ascii string).
-
- - Edgar
-